Gorm - Get All Data
Melanjutkan dari tulisan sebelumnya yaitu koneksi database postgresql, pada tulisan kali ini, akan dijelaskan bagaimana cara untuk mengambil semua data dari table tertentu.
Persiapan
- Table dengan beberapa data, disini menggunakan
articlesdengan data sebagai berikut ini :

Deklarasi Model
Buat file dengan struktur seperti ini models/article.go, untuk mendeklarisikan struktur dari data articles yang ingin didapatkan :
package models
type Article struct {
ID string `gorm:"primaryKey"`
Name string
Content string
AuthorName string
}
Buat Repository
Buat file dengan struktur seperti ini repository/articles.go, yang berisi fungsi untuk mengelola data articles :
package repository
import (
"example/hello/databases"
"example/hello/models"
)
func GetAllArticles() ([]models.Article, error) {
db, err := databases.SetConnection()
if err != nil {
return nil, err
}
var articles []models.Article
if err := db.Find(&articles).Error; err != nil {
return nil, err
}
return articles, nil
}
Finalisasi
Setelah 2 hal di atas selesai, selanjutnya buat logic untuk menampilkan seluruh data articles pada log aplikasi, dengan memanfaatkan repository tadi, seperti berikut ini :
import (
...
"example/hello/repository"
"fmt"
...
)
func main() {
...
//show all articles
articles, err := repository.GetAllArticles()
if err != nil {
fmt.Println("Failed get articles: ", err)
return
}
fmt.Println("Articles in db are : ")
for _, article := range articles {
fmt.Printf(
"ID: %s, name: %s, content: %s, authorName: %s \n",
article.ID,
article.Name,
article.Content,
article.AuthorName,
)
}
...
}
Jika berhasil, pada log terminal anda, terdapat deretan data articles, seperti berikut ini :

Referensi :